"""
Configuration management
"""

const DEFAULT_CONFIG = Dict{Symbol, Any}(
    :rtol => 1e-6,
    :abstol => 1e-8, 
    :default_solver => :adaptive,
    :verbose => false
)

const _config = copy(DEFAULT_CONFIG)

struct Config
    data::Dict{Symbol, Any}
    
    Config() = new(copy(_config))
    Config(dict::Dict) = new(dict)
end

function get_config()
    return Config()
end

function set_config!(key::Symbol, value)
    _config[key] = value
end

function get_package_version()
    return v"1.0.0"
end